#ifndef	__visual_H__
#define __visual_H__

#include "rendVect.hpp"
#include "rendBox.hpp"

#include <float.h>

namespace rend
{

class Visual
{
public:

	Visual();

	void					setBBox(const Box3& bbox);					// axes-aligned box in model/object space
	const Box3&				getBBox() const;

	virtual void			draw()		= 0;
	virtual void			drawWire()	= 0;

protected:

	Box3					mBBox;
};


inline
Visual::Visual()
: mBBox( FLT_MAX,  FLT_MAX,  FLT_MAX,
		-FLT_MAX, -FLT_MAX, -FLT_MAX )
{}


inline void
Visual::setBBox(const Box3& bbox)
{
	mBBox = bbox;
}


inline const Box3&
Visual::getBBox() const
{
	return mBBox;
}

} // namespace rend

#endif // __visual_H__
